package com.lin.mr.maizilaundry.utils;

import android.util.Log;
import android.widget.ImageView;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.StringRequest;
import com.lin.mr.maizilaundry.myapplication.MyApplication;

/**
 * Created by lenovog on 2016/8/13.
 */
public class VolleyUtils {
    private final static MyApplication application = MyApplication.getInstance();

    /**
     * 请求回调的结果函数，返回Volley请求的数据
     **/
    public interface CallBack {
        void returnData(Object result);
    }

    /**
     * 通过Volley的GET方法请求数据
     **/
    public static void requestByGet(String url, final String tag, final CallBack callBack) {
        Log.e(tag, "get请求url：" + url);

        //参数：请求方式，URL，响应的回调接口，失败的回调接口
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        callBack.returnData(response);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                callBack.returnData(null);
            }
        });

        //调用MyApplication中的startRequest()方法开始请求
        if (application != null){
            application.startRequest(stringRequest, tag);

        }else {
            Log.e("application","application为null");
        }
    }

    /**
     * 通过Volley直接加载图片到控件
     */
    public static void loadImage(String url, ImageView iv, int defaultImageResId, int errorImageResId) {
        // 参数（view是ImageView的一个实例，defaultImageResId是设置的默认图片，errorImageResId是请求失败时设置的图片）
        ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(iv,
                defaultImageResId, errorImageResId);
        // 得到图片加载器
        ImageLoader loader = application.getImageLoader();
        // 图片加载
        loader.get(url, imageListener);
    }

    /**
     * 取消请求
     */
    public static void cancelRequest(String TAG) {

        application.cancelRequest(TAG);

    }
}
